专为终端同学打造的超轻量跨端框架
小编推荐:Hummer(原名NativeJS)项目是由R-Lab泛前端团队发起,我们普惠泛前端团队参与共建的高性能高可用的轻量级动态化跨端框架。历时一年多的打磨,目前已经在聚合收银台、代驾跑腿、596等业务上进行了大规模落地,同时在代驾司机端和两轮车业务的部分场景上进行尝试。
最小规模的技术团队。收银钱包小组团队由两位全职同学和两位兼职同学组成。
大量的业务需求和定制诉求。我们支撑了所有涉及支付服务的国内和国际业务的发展,大量的业务需求,特别是国际化开城阶段的本地化定制需求,给团队在排期方面造成了非常大的压力。
架构各异的独立App及严格的包大小要求。集团内几乎所有涉及支付业务的App,如滴滴乘客端、99Taxi、如黑马独立端、车服独立端、金融独立端、桔子堆(现D-Chat)等,甚至还尝试过外部接入,如雄安公交业务,除此之外,还有非常多的,处于保密中或试验性的App。这些独立端都有着自己定制化的架构设计,以及符合自身业务诉求和团队现状的技术选型,这给收银SDK带来了非常大的适配工作,并且对包体积有着严格的要求;
最高级别的稳定性要求。收银服务无论对于哪个业务来说,都是核心流程中最重要的一环,收银服务的故障,将给各业务线造成不可估量的财务损失和舆论风险。所以收银团队一直以稳定性为最高目标,探索着各种技术解决方案,但是受限于终端的发版特性以及版本覆盖延迟等问题,仍旧给团队造成不小的困扰;
轻量级:当前Hummer整体编译后只有几百KB的大小,能非常便捷地接入到各App中,并大大缓解各App的包体积压力;
高可用:团队自研属性,使得我们对于问题的解决和性能的优化,做到了极速响应,造就了当前低于 0.1‰的crash率;
跨端性:基于JSEngine的导出机制,提供统一API,抹平平台差异,实现一套js代码跨三端执行;
动态化:通过JS引擎的动态执行能力和JS Bundle的远程下发设施,实现了Hummer的动态更新能力;
高性能:得利于原生风格的API设计和基于原生的布局和渲染能力,大大减少了跨域通信损耗,使得Hummer发挥出接近原生的性能体验;
易上手:足够简单的架构设计,不到4000行的核心代码,以及偏向原生的开发体验,使得客户端同学的上手难度和维护成本都降至最低;
页面渲染时间
CPU占用率
内存占用
帧率
4. Hummer的价值 每次谈了技术性建设,都会讨论它的价值所在,而我们认为,世界上可能没有最好的技术方案,只有符合当下业务发展和自身团队现状的技术方案,才是真正最好的技术方案。而找到这个方案,无论是对业务还是团队来说,都是一个非常大的价值点。除此之外,Hummer在业务、技术,以及组织方面,也收获了不小的价值。 代码很简单,写法很像客户端同学的开发习惯,相信这里不需要过多的阐述。与此同时,Hummer 的开源工作正在积极筹备中,敬请期待...
5. 架构设计
6. 工程实践
7. 总结
--------- PUHUI TECH ---------
我来自浙江绍兴,Hummer项目负责人,对技术和艺术都有所追求,平时喜欢带着我家狗子爬爬山玩玩水,是一名称职的铲屎官。
我来自绍兴上虞,普惠泛前端-业务终端负责人,工作之余我主要负责带娃,跟娃一起重温童年,玩乐高,看动漫,抢零食。自诩为合格的奶爸。
我来自古城绍兴,Hummer iOS 侧核心开发,对音乐、法律、赛车都有涉猎,空闲偶尔玩玩主机游戏